<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
       全选: <input type="checkbox" v-model="all">  <br>
       --------------------------<br>
        <p v-for="item in list" :key="item.id">
            选项 {{item.id}}<input type="checkbox" v-model="item.is" >
        </p>
    </div>
    <script src="./vue.global.js"></script>

    <script>
        const data = [{id:1,is:true},{id:2,is:false},{id:3,is:false}]
        const {createApp} = Vue;


        const app = createApp({
            data(){
                return {
                    list:data
                }
            },
            methods:{
               
            },
            computed:{
                // all(){
                //     return this.list.every(item=>item.is)
                // }

                // 上面是基础写法  all 只读  只能实现 下面影响上面  
                // 不能实现上面影响 下面  
                

                // 首先 捕获到 你想改all 这个行为  
                // 然后让 list 的每一个is 变成true 或者false 

                all:{
                    //下面影响上面 
                    get(){
                        return this.list.every(item=>item.is);
                    },
                    set(val){
                        // 如果你想修改all的结果 
                        // 这个函数触发 
                        this.list.forEach(item => item.is = val);
                    }
                }
            }
        });

        app.mount('#app')
    </script>
</body>
</html>